[XEND] Move Vifctl.network('start') earlier in Xend startup so XendNode can find...
authorTom Wilkie <tom.wilkie@gmail.com>
Wed, 2 May 2007 16:14:52 +0000 (17:14 +0100)
committerTom Wilkie <tom.wilkie@gmail.com>
Wed, 2 May 2007 16:14:52 +0000 (17:14 +0100)
signed-off-by: Tom Wilkie <tom.wilkie@gmail.com>

tools/python/xen/xend/server/SrvDaemon.py
tools/python/xen/xend/server/SrvServer.py

index a265aef9067e550c9a7cacfcf4143eb81bfbff6c..ccb485d1fbd9adc49e50dee6f637c058da01e3e8 100644 (file)
@@ -342,7 +342,7 @@ class Daemon:
                 log.info("Xend version: Unknown.")
 
             relocate.listenRelocation()
-            servers = SrvServer.create()
+            servers = SrvServer.create(status)
             servers.start(status)
             del servers
             
index 10a09a4c56bdb59710d367385a208b48436a7175..544be9725d8a629ade4f0ae43323de8b328759ab 100644 (file)
@@ -95,14 +95,6 @@ class XendServers:
         self.cleanup(signum, frame, reloading = True)
 
     def start(self, status):
-        # Running the network script will spawn another process, which takes
-        # the status fd with it unless we set FD_CLOEXEC.  Failing to do this
-        # causes the read in SrvDaemon to hang even when we have written here.
-        if status:
-            fcntl.fcntl(status, fcntl.F_SETFD, fcntl.FD_CLOEXEC)
-        
-        Vifctl.network('start')
-
         # Prepare to catch SIGTERM (received when 'xend stop' is executed)
         # and call each server's cleanup if possible
         signal.signal(signal.SIGTERM, self.cleanup)
@@ -249,7 +241,15 @@ def _loadConfig(servers, root, reload):
         servers.add(XMLRPCServer(XendAPI.AUTH_PAM, False))
 
 
-def create():
+def create(status):
+    # Running the network script will spawn another process, which takes
+    # the status fd with it unless we set FD_CLOEXEC.  Failing to do this
+    # causes the read in SrvDaemon to hang even when we have written here.
+    if status:
+        fcntl.fcntl(status, fcntl.F_SETFD, fcntl.FD_CLOEXEC)
+    
+    Vifctl.network('start')
+
     root = SrvDir()
     root.putChild('xend', SrvRoot())
     servers = XendServers(root)